var MongoClient = require('mongodb').MongoClient

var DbUrl = 'mongodb://localhost:27017/productmanage' /*连接数据库*/

var ObjectID = require('mongodb').ObjectID

function __connectDb(callback) {
  MongoClient.connect(
    DbUrl,
    function(err, db) {
      if (err) {
        console.log('数据库连接失败')
        throw '数据库连接失败'
        return
      }
      callback(db)
      db.close() /*关闭数据库连接*/
    }
  )
}

//暴露 ObjectID

exports.ObjectID = ObjectID

//数据库查找
exports.find = function(collectionname, json, callback) {
  __connectDb(function(db) {
    var result = db.collection(collectionname).find(json)
    result.toArray(function(error, data) {
      callback(error, data) /*拿到数据执行回调函数*/
    })
  })
}

//增加数据
exports.insert = function(collectionname, json, callback) {
  __connectDb(function(db) {
    db.collection(collectionname).insertOne(json, function(error, data) {
      callback(error, data)
    })
  })
}

//增加数据
exports.update = function(collectionname, json1, json2, callback) {
  __connectDb(function(db) {
    db.collection(collectionname).updateOne(json1, { $set: json2 }, function(
      error,
      data
    ) {
      callback(error, data)
    })
  })
}

//删除数据
exports.deleteOne = function(collectionname, json, callback) {
  __connectDb(function(db) {
    db.collection(collectionname).deleteOne(json, function(error, data) {
      callback(error, data)
    })
  })
}
